package net.goutalk.glcs.module.erpModel.caseErpCustomer.service;

import com.github.yulichang.base.MPJBaseService;
import net.goutalk.glcs.common.page.PageOutput;
import net.goutalk.glcs.module.erpModel.caseErpCustomer.dto.AddCaseErpCustomerDto;
import net.goutalk.glcs.module.erpModel.caseErpCustomer.dto.CaseErpCustomerDto;
import net.goutalk.glcs.module.erpModel.caseErpCustomer.dto.TransferCaseErpCustomerDto;
import net.goutalk.glcs.module.erpModel.caseErpCustomer.dto.UpdateCaseErpCustomerDto;
import net.goutalk.glcs.module.erpModel.caseErpCustomer.entity.CaseErpCustomer;
import net.goutalk.glcs.module.erpModel.caseErpCustomer.vo.*;
import net.goutalk.glcs.module.erpModel.caseErpCustomer.vo.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 客户信息【case_erp_customer】 服务类
 * </p>
 *
 * @author hnyyzy
 * @since 2023-07-11
 */
public interface ICaseErpCustomerService extends MPJBaseService<CaseErpCustomer> {
    Boolean add(AddCaseErpCustomerDto dto);

    Boolean update(UpdateCaseErpCustomerDto dto);

    Boolean delete(Long id);

    PageOutput<CaseErpCustomerVo> getPageList(CaseErpCustomerDto dto);

    Boolean common(List<Long> ids);

    Boolean transfer(TransferCaseErpCustomerDto dto);

    CaseErpCustomerInfoVo info(CaseErpCustomer caseErpCustomer);

    List<CaseErpCustomerExportVo> export(List<Long> ids);

    List<CaseErpCustomerCommonExportVo> exportCommon();

    Boolean importData( MultipartFile file) throws IOException;

    Boolean importCommonData( MultipartFile file) throws IOException;

    CaseErpCustomerVo baseInfo(CaseErpCustomer caseErpCustomer);

    CaseErpCustomerDetailInfoVo detailInfo(CaseErpCustomer caseErpCustomer);

    Boolean getFromCommon(Long id);

    List<CustomerSourceVo> getCustomerSource();

    List<CustomerAllVo> getAll();

    List<CustomerPxaymentVo> getCustomerPaymexnt();

    List<CustomerVo> getCustomerType();
}
